wm geom .konsola 588x761+440+63; wm geom .output 348x512+83+62 ## symul asynch - przyklad # source symul_lib.tcl # tworzymy graf komunikacyjny (w tym wypadku cykl) set liczbaWierz 5 set sasiedzi(0) {4 1} set sasiedzi(1) {0 2} set sasiedzi(2) {1 3} set sasiedzi(3) {2 4} set sasiedzi(4) {3 0} # ^ numery połączeń zależą od kolejności id na liście sąsiadów fiber create $liczbaWierz run fiber_iterate { proc run {} { global id id_los run kom wyslij 1 $id_los fiber switchto main; # oznacza koniec zdarzenia obliczeniowego while {$run} { if {$kom(0)!=""} { wyslij 1 [czytaj 0] } fiber switchto main; # oznacza koniec zdarzenia obliczeniowego } } } InicjalizacjaAsynch; # koniecznie trzeba to wywolac!!! # ............. do tego miejsca wykonaj ..................... pokazKom #% fiber switchto 0; _puts ---; pokazKom #% dostarczKom 1 0; _puts ---; pokazKom #% exit